Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#-XNA] Billboarding
Forum - C# / VB.NET - [C#-XNA] Billboarding

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2307
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:22
Sabato, 13/12/2008
Ah dopo un po di tempo rieccomi qui a richidere consigli

mi trovo dico anche concludendo che finalmente ho fatto il collision detection :rotfl:

Un piccolo problemino con le sprite2D.

Avevo intenzione di creare delle Billboarding
per evitare di usare personaggi 3D e animazioni skinning, perchè e ancora troppo presto per me.

Alcuni mi hanno consigliato di usare la Quad Class.

Ma stranamente non mi dà l'effetto desiderato in billboard.

ho provato anche i diversi modi usando la quad
principalemente per la quadclass ho un problema

Codice sorgente - presumibilmente C# / VB.NET

  1. quad = new Quad(Vector3.Zero, Vector3.Backward, Vector3.Up, 1, 1);
  2.             View = Matrix.CreateLookAt(new Vector3(10, 0, 5), Vector3.Zero, Vector3.Up);
  3.  
  4.             Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 4.0f / 3.0f, 1, 500);
  5.  
  6.  
  7.  
  8. //variabili
  9.  
  10. texture = Content.Load<Texture2D>(@"Sprite\char");
  11.             quadEffect = new BasicEffect(graphics.GraphicsDevice, null);
  12.             quadEffect.EnableDefaultLighting();
  13.  
  14.             quadEffect.World = Matrix.Identity;
  15.             quadEffect.View = View;
  16.             quadEffect.Projection = Projection;
  17.             quadEffect.TextureEnabled = true;
  18.             quadEffect.Texture = texture;
  19.             quadVertexDecl = new VertexDeclaration(graphics.GraphicsDevice,
  20.                VertexPositionNormalTexture.VertexElements);
  21.  
  22. //
  23.  
  24. protected override void Draw(GameTime gameTime)
  25.         {
  26.             graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
  27.  
  28.                        GraphicsDevice.VertexDeclaration = quadVertexDecl;
  29.             quadEffect.Begin();
  30.             foreach (EffectPass pass in quadEffect.CurrentTechnique.Passes)
  31.             {
  32.                 pass.Begin();
  33.  
  34.                 GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(
  35.                     PrimitiveType.TriangleList, quad.Vertices, 0, 4, quad.Indexes, 0, 2);
  36.  
  37.                 pass.End();
  38.             }
  39.             quadEffect.End();
  40.  
  41.             base.Draw(gameTime);
  42. }



Il problema non me lo da sui vertici o quant'altro
ho un problema proprio di posizionamento

come posso spiegare

1° la sprite vorrei che sarebbe sempre orientata verso la camera e girerebbe di conseguenza.

Usando il quad non solo non ottengo quest'effetto
ma mi stampa la faccia di un cubo con una texture sopra applicata.

ma non l'appoggia nemmeno sul terreno
anche se ho specificato come cordinate 0f,0f,0f


ecco l'effetto stranissimo che mi dà



http://img183.imageshack.us/img183/684/mmorpgmakersschd6.png



si è in 3D.
Ma e come se stampassi una semplice sprite.
e ovviamente si sà qual'è il risultato se si stampa una sprite2D in un ambiente 3D

ovunque giri la camera o ovuque vai la sprite resta sempre a video non rimane in una posizione fissa


Voi che siete più esperti di me, come faccio a stampare un semplicissimo billord? :grr:

Sta cosa mi sta dando sui nervi...

pls.

Ultima modifica effettuata da Thejuster il 14/12/2008 alle 10:54


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2307
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 0:30
Giovedì, 18/12/2008
up.

Nessun aiuto? 8-|


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote